package org.liziing.shortlink.admin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import org.liziing.shortlink.admin.dao.entity.GroupDO;
import org.liziing.shortlink.admin.dto.req.ShortLinkGroupSortReqDTO;
import org.liziing.shortlink.admin.dto.req.ShortLinkGroupUpdateReqDTO;
import org.liziing.shortlink.admin.dto.resp.ShortLinkGroupRespDTO;

import java.util.List;

/**
 * 短链接分组接口层
 */
public interface GroupService extends IService<GroupDO> {

    /**
     * 新增分组
     * @param name 分组名
     */
    void saveGroup(String name);


    /**
     * 新增分组
     * @param  username 用户名
     * @param name 分组名
     */
    void saveGroup(String username, String name);

    /**
     * 查询短链接分组集合
     * @return
     */
    List<ShortLinkGroupRespDTO> listGroup();

    /**
     * 修改分组名称
     * @param requestParam 修改分组参数
     * @return  修改分数返回参数
     */
    void updateGroup(ShortLinkGroupUpdateReqDTO requestParam);

    /**
     * 删除分组
     * @param gid 分组id
     * @return 删除分组返回参数
     */
    void deleteGroup(String gid);

    /**
     * 短链接分组排序
     * @param requestParam 短链接分组排序请求参数
     */
    void sortGroup(List<ShortLinkGroupSortReqDTO> requestParam);
}
